from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):

    剑盾加成 = 1.0
    chain = 0

    形态 = ["6c", "5c", "4c", "3c"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.chain = 6
        if 形态 == "5c":
            self.chain = 5
        if 形态 == "4c":
            self.chain = 4
        if 形态 == "3c":
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * self.剑盾加成


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级精通 = 110
    等级上限 = 200
    学习间隔 = 1
    关联技能 = ['盾挑','骑乘召唤','骑乘践踏','骑乘前踏','骑乘后撩踢','骑乘奔袭','骑乘旋风刺击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '基本攻击'
    备注 = '一轮'
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    MP = [0, 0]
    data0 = [int(i*1.10) for i in [0, 108.75+151.86+174.39]]
    hit0 = 1
    CD = 1.0  # 实际无CD
    TP成长 = 0.10
    TP上限 = 5

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能2(主动技能):
    名称 = "盾挑"
    所在等级 = 1
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    CD = 2
    MP = [0, 0]
    无色消耗 = 0
    data0 = [0, 100, 111, 122, 133, 144, 155, 167, 178, 189, 200, 211, 222, 233, 244, 255, 266, 278, 289, 300, 311]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能3(主动技能):
    名称 = "强踢"
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [2, 350]
    无色消耗 = 0
    data0 = [0, 1168, 1285, 1404, 1523, 1641, 1760, 1878, 1998, 2116, 2236, 2354, 2471, 2591, 2709, 2827, 2946, 3064, 3183, 3302, 3420, 3538, 3659, 3778, 3896, 4013, 4133, 4251, 4370, 4489, 4606, 4725, 4844, 4964, 5082, 5201, 5319, 5437, 5557, 5675, 5792, 5912, 6030, 6149, 6267, 6386, 6504, 6624, 6743, 6860, 6981, 7099, 7217, 7337, 7454, 7573, 7692, 7810, 7928, 8047, 8167, 8285, 8403, 8522, 8640, 8758, 8878, 8996, 9114, 9233, 9352]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能4(主动技能):
    名称 = "盾击"
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [5, 180]
    无色消耗 = 0
    data0 = [0, 499, 550, 601, 651, 702, 753, 804, 855, 905, 955, 1006, 1058, 1109, 1159, 1210, 1262, 1311, 1365, 1415, 1466, 1516, 1567, 1619, 1670, 1720, 1771, 1821, 1871, 1923, 1974, 2024, 2075, 2126, 2176, 2229, 2280, 2330, 2380, 2431, 2483, 2533, 2584, 2635, 2686, 2736, 2788, 2839, 2888, 2939, 2990, 3042, 3092, 3144, 3195, 3245, 3295, 3348, 3397, 3448, 3499, 3550, 3601, 3652, 3703, 3753, 3803, 3854, 3905, 3956, 4007]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能5(主动技能):
    名称 = "致命突刺"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [6, 250]
    无色消耗 = 0
    data0 = [0, 249, 282, 315, 343, 372, 407, 437, 467, 495, 528, 559, 587, 620, 650, 682, 710, 744, 773, 805, 834, 865, 896, 927, 958, 989, 1018, 1048, 1077, 1110, 1140, 1173, 1203, 1233, 1265, 1294, 1326, 1356, 1387, 1417, 1448, 1479, 1512, 1542, 1572, 1599, 1632, 1664, 1693, 1723, 1755, 1966, 2001, 2034, 2070, 2103, 2137, 2172, 2205, 2241, 2274, 2309, 2343, 2376, 2413, 2448, 2481, 2515, 2550, 2586, 2618]
    hit0 = 1
    data1 = [0, 315, 355, 391, 429, 467, 507, 545, 582, 621, 660, 697, 735, 773, 814, 853, 888, 929, 967, 1007, 1040, 1079, 1119, 1158, 1196, 1235, 1274, 1312, 1350, 1388, 1427, 1465, 1503, 1542, 1579, 1619, 1655, 1695, 1736, 1772, 1810, 1846, 1889, 1925, 1962, 2003, 2041, 2080, 2115, 2152, 2194, 2459, 2500, 2543, 2586, 2629, 2671, 2713, 2758, 2803, 2843, 2888, 2930, 2973, 3014, 3059, 3101, 3145, 3191, 3231, 3272]
    hit1 = 0
    TP成长 = 0.1
    TP上限 = 7
    chain = 6

    形态 = ["6c", "5c", "4c", "3c", "6c蓄", "5c蓄", "4c蓄", "3c蓄"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 6
        if 形态 == "5c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 5
        if 形态 == "4c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 4
        if 形态 == "3c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 3
        if 形态 == "6c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 6
        if 形态 == "5c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 5
        if 形态 == "4c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 4
        if 形态 == "3c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()


class 技能6(主动技能):
    名称 = "愤怒冲撞"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 9
    MP = [15, 420]
    无色消耗 = 0
    data0 = [0, 3751, 4132, 4513, 4893, 5275, 5656, 6038, 6417, 6798, 7180, 7559, 7942, 8320, 8702, 9083, 9464, 9846, 10225, 10606, 10989, 11368, 11750, 12131, 12513, 12892, 13273, 13655, 14032, 14416, 14796, 15178, 15558, 15939, 16321, 16701, 17081, 17464, 17843, 18225, 18607, 18988, 19367, 19748, 20130, 20508, 20890, 21271, 21652, 22033, 22415, 22795, 23176, 23556, 23939, 24319, 24700, 25081, 25463, 25842, 26224, 26605, 26983, 27365, 27746, 28128, 28508, 28890, 29269, 29651, 30032]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能7(主动技能):
    名称 = "破武之轮"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [9, 250]
    无色消耗 = 0
    data0 = [0, 627, 749, 833, 916, 998, 1071, 1159, 1237, 1316, 1398, 1481, 1565, 1638, 1727, 1803, 1887, 1964, 2048, 2132, 2207, 2291, 2370, 2454, 2532, 2615, 2696, 2775, 2855, 2940, 3021, 3102, 3186, 3262, 3342, 3424, 3507, 3590, 3667, 3745, 3829, 3912, 3993, 4078, 4157, 4234, 4312, 4397, 4481, 4561, 4646, 4718, 4802, 4885, 4967, 5045, 5128, 5208, 5290, 5372, 5453, 5533, 5616, 5696, 5778, 5858, 5940, 6021, 6101, 6184, 6264]
    hit0 = 1
    data1 = [0, 1255, 1499, 1669, 1829, 1995, 2143, 2320, 2475, 2634, 2796, 2966, 3129, 3277, 3456, 3609, 3773, 3930, 4100, 4265, 4413, 4583, 4743, 4909, 5065, 5235, 5389, 5552, 5710, 5881, 6044, 6204, 6374, 6524, 6687, 6846, 7015, 7178, 7333, 7491, 7659, 7825, 7985, 8155, 8314, 8468, 8625, 8795, 8959, 9119, 9291, 9438, 9602, 9769, 9934, 10090, 10255, 10419, 10580, 10744, 10906, 11068, 11231, 11392, 11554, 11716, 11879, 12041, 12204, 12365, 12528]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能8(被动技能):
    名称 = '骑士信念'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['天马流星落', '暮光之灵黄昏独角兽', '生命之律·神木擎天']

    def CD缩减倍率(self, 武器类型):
        return 0.9

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.02 * self.等级, 5)


class 技能9(主动技能):
    名称 = "守护神鹿"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [10, 300]
    无色消耗 = 0
    data0 = [0, 460, 507, 554, 601, 647, 695, 742, 790, 837, 884, 931, 976, 1025, 1071, 1119, 1166, 1213, 1262, 1306, 1356, 1402, 1447, 1496, 1542, 1591, 1636, 1682, 1730, 1777, 1825, 1871, 1919, 1967, 2012, 2060, 2106, 2155, 2201, 2248, 2295, 2342, 2389, 2436, 2482, 2530, 2577, 2625, 2672, 2717, 2766, 2812, 2860, 2906, 2955, 3001, 3046, 3095, 3141, 3188, 3235, 3281, 3330, 3375, 3423, 3470, 3516, 3565, 3611, 3659, 3705]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    chain = 6



class 技能10(主动技能):
    名称 = "审判之盾"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [20, 400]
    无色消耗 = 0
    data0 = [0, 465, 511, 561, 608, 655, 702, 751, 798, 845, 892, 940, 988, 1034, 1083, 1129, 1177, 1225, 1272, 1320, 1367, 1414, 1462, 1509, 1556, 1604, 1652, 1699, 1746, 1793, 1842, 1888, 1936, 1983, 2031, 2080, 2126, 2175, 2222, 2269, 2316, 2364, 2412, 2459, 2506, 2554, 2602, 2648, 2696, 2743, 2792, 2840, 2886, 2935, 2982, 3029, 3076, 3125, 3172, 3219, 3267, 3314, 3362, 3408, 3457, 3503, 3552, 3600, 3647, 3695, 3742]
    hit0 = 1
    data1 = [0, 323, 358, 392, 424, 458, 490, 524, 558, 590, 624, 657, 690, 724, 756, 790, 823, 856, 888, 922, 955, 989, 1023, 1057, 1089, 1124, 1157, 1190, 1220, 1254, 1288, 1321, 1356, 1387, 1421, 1455, 1488, 1522, 1555, 1587, 1619, 1653, 1686, 1719, 1753, 1787, 1820, 1853, 1887, 1920, 1954, 1987, 2019, 2052, 2086, 2120, 2154, 2185, 2218, 2252, 2286, 2319, 2351, 2385, 2418, 2452, 2484, 2518, 2552, 2585, 2620]
    hit1 = 10
    TP成长 = 0.1
    TP上限 = 7

    chain = 6



class 技能11(主动技能):
    名称 = "破甲冲击"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [25, 480]
    无色消耗 = 0
    data0 = [0, 3391, 3735, 4078, 4425, 4768, 5111, 5458, 5801, 6144, 6488, 6834, 7179, 7521, 7867, 8210, 8555, 8900, 9244, 9588, 9930, 10276, 10621, 10965, 11311, 11653, 11996, 12344, 12687, 13030, 13374, 13721, 14063, 14408, 14753, 15097, 15442, 15786, 16130, 16472, 16819, 17163, 17507, 17852, 18195, 18539, 18887, 19229, 19572, 19916, 20261, 20606, 20951, 21296, 21638, 21981, 22328, 22673, 23015, 23360, 23705, 24049, 24393, 24738, 25082, 25424, 25771, 26115, 26459, 26803, 27148]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    chain = 6


class 技能12(主动技能):
    名称 = "精灵之跃"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7.5
    MP = [30, 650]
    无色消耗 = 0
    data0 = [0, 4444, 4897, 5348, 5798, 6249, 6700, 7153, 7603, 8055, 8505, 8956, 9409, 9860, 10311, 10762, 11212, 11664, 12115, 12565, 13017, 13471, 13921, 14371, 14823, 15273, 15725, 16176, 16627, 17079, 17531, 17982, 18433, 18884, 19335, 19785, 20237, 20689, 21141, 21592, 22042, 22494, 22944, 23395, 23845, 24297, 24750, 25201, 25651, 26103, 26553, 27006, 27457, 27908, 28358, 28811, 29262, 29713, 30164, 30616, 31067, 31519, 31968, 32419, 32869, 33323, 33774, 34226, 34676, 35127, 35579]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能13(主动技能):
    名称 = "神木刺击"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [30, 950]
    无色消耗 = 0
    data0 = [0, 5252, 5787, 6320, 6855, 7386, 7921, 8455, 8986, 9520, 10052, 10588, 11120, 11652, 12188, 12720, 13255, 13785, 14319, 14853, 15386, 15921, 16454, 16986, 17521, 18052, 18587, 19119, 19653, 20186, 20720, 21254, 21787, 22318, 22851, 23386, 23920, 24452, 24988, 25520, 26052, 26588, 27118, 27653, 28185, 28720, 29253, 29786, 30320, 30853, 31385, 31920, 32452, 32986, 33519, 34053, 34586, 35120, 35654, 36186, 36718, 37252, 37786, 38320, 38853, 39386, 39920, 40451, 40985, 41520, 42051]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    chain = 6


class 技能14(主动技能):
    名称 = "剑盾猛攻"
    所在等级 = 30
    等级上限 = 16
    学习间隔 = 10
    等级精通 = 6
    CD = 5
    MP = [2, 75]
    无色消耗 = 0
    data0 = [0, 1784, 2196, 2612, 3024, 3439, 3853, 4267, 4681, 5096, 5509, 5925, 6339, 6753, 7166, 7580, 7994]
    hit0 = 1
    data1 = [0, 1914, 2358, 2803, 3246, 3692, 4136, 4581, 5025, 5469, 5915, 6360, 6804, 7248, 7693, 8136, 8582]
    hit1 = 0

    形态 = ["挥盾", "推进"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "挥盾":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "推进":
            self.hit0 = 0
            self.hit1 = 1

    def 剑盾倍率(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.120 + 0.005 * self.等级, 5)

    # 仅适用于剑盾强袭
    def 剑盾倍率1(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.120 + 0.05 + 0.005 * self.等级, 5)

    def 等效CD(self, **argv):
        return 0.5


class 技能15(主动技能):
    名称 = "铁壁推进"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [35, 1400]
    无色消耗 = 1
    data0 = [0, 579, 639, 699, 756, 815, 875, 933, 993, 1054, 1111, 1170, 1229, 1287, 1348, 1406, 1467, 1525, 1582, 1643, 1701, 1760, 1821, 1878, 1938, 1997, 2055, 2115, 2175, 2234, 2292, 2352, 2410, 2470, 2528, 2589, 2647, 2707, 2765, 2823, 2884, 2941, 3000, 3060, 3119, 3179, 3237, 3296, 3356, 3413, 3474, 3533, 3591, 3651, 3710, 3768, 3827, 3888, 3945, 4006, 4063, 4123, 4182, 4239, 4301, 4360, 4419, 4477, 4536, 4595, 4654]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    chain = 6

    形态 = ["6c(秒断)", "5c(秒断)", "4c(秒断)", "3c(秒断)",
          "6c(满)", "5c(满)", "4c(满)", "3c(满)"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c(秒断)":
            self.hit0 = 1
            self.chain = 6
        if 形态 == "5c(秒断)":
            self.hit0 = 1
            self.chain = 5
        if 形态 == "4c(秒断)":
            self.hit0 = 1
            self.chain = 4
        if 形态 == "3c(秒断)":
            self.hit0 = 1
            self.chain = 3
        if 形态 == "6c(满)":
            self.hit0 = 18
            self.chain = 6
        if 形态 == "5c(满)":
            self.hit0 = 18
            self.chain = 5
        if 形态 == "4c(满)":
            self.hit0 = 18
            self.chain = 4
        if 形态 == "3c(满)":
            self.hit0 = 18
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()


class 技能16(主动技能):
    名称 = "自然束缚"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [35, 750]
    无色消耗 = 1
    data0 = [0, 7389, 8139, 8893, 9641, 10390, 11139, 11889, 12643, 13390, 14142, 14892, 15645, 16392, 17140, 17892, 18642, 19396, 20144, 20896, 21645, 22391, 23145, 23894, 24646, 25393, 26148, 26897, 27649, 28395, 29145, 29898, 30647, 31398, 32147, 32901, 33649, 34396, 35148, 35897, 36651, 37400, 38149, 38901, 39646, 40400, 41150, 41902, 42649, 43399, 44153, 44902, 45651, 46399, 47154, 47903, 48651, 49403, 50155, 50906, 51652, 52403, 53153, 53903, 54656, 55405, 56157, 56907, 57657, 58405, 59155]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能17(主动技能):
    名称 = "一刀两断"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [35, 1350]
    无色消耗 = 1
    data0 = [0, 2624, 2893, 3160, 3426, 3694, 3959, 4227, 4494, 4759, 5026, 5292, 5562, 5828, 6094, 6361, 6626, 6893, 7160, 7426, 7696, 7962, 8228, 8495, 8760, 9029, 9294, 9561, 9828, 10095, 10360, 10628, 10896, 11162, 11429, 11694, 11962, 12230, 12494, 12762, 13027, 13297, 13562, 13829, 14098, 14363, 14628, 14895, 15162, 15431, 15697, 15963, 16230, 16498, 16763, 17030, 17296, 17564, 17830, 18096, 18366, 18631, 18898, 19164, 19430, 19698, 19964, 20230, 20500, 20765, 21032]
    hit0 = 1
    data1 = [0, 4473, 4928, 5383, 5836, 6290, 6744, 7198, 7653, 8107, 8560, 9017, 9470, 9923, 10377, 10833, 11286, 11741, 12195, 12650, 13102, 13558, 14011, 14466, 14920, 15375, 15827, 16283, 16736, 17191, 17645, 18100, 18554, 19007, 19460, 19917, 20371, 20824, 21278, 21735, 22186, 22641, 23094, 23549, 24004, 24460, 24912, 25366, 25819, 26275, 26729, 27182, 27638, 28093, 28544, 28999, 29455, 29908, 30362, 30818, 31271, 31725, 32178, 32633, 33088, 33543, 33996, 34450, 34904, 35358, 35813]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 3.64
        self.hit1 = 0


class 技能18(主动技能):
    名称 = "飓风旋枪"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 25
    MP = [40, 2800]
    无色消耗 = 1
    data0 = [0, 4248, 4679, 5110, 5541, 5972, 6405, 6833, 7265, 7697, 8129, 8560, 8991, 9422, 9853, 10286, 10715, 11149, 11579, 12009, 12440, 12872, 13302, 13734, 14165, 14598, 15028, 15460, 15890, 16322, 16752, 17184, 17614, 18045, 18478, 18909, 19340, 19772, 20202, 20634, 21063, 21497, 21928, 22359, 22790, 23221, 23653, 24082, 24515, 24944, 25378, 25809, 26241, 26670, 27102, 27533, 27963, 28396, 28827, 29259, 29690, 30121, 30552, 30982, 31414, 31845, 32277, 32709, 33140, 33571, 34001]
    hit0 = 2
    data1 = [0, 454, 501, 546, 595, 640, 686, 733, 780, 826, 873, 919, 966, 1013, 1059, 1104, 1151, 1198, 1243, 1290, 1336, 1384, 1429, 1476, 1522, 1569, 1616, 1661, 1710, 1754, 1801, 1846, 1894, 1940, 1986, 2032, 2080, 2126, 2172, 2220, 2266, 2313, 2359, 2405, 2450, 2498, 2543, 2591, 2636, 2684, 2730, 2776, 2824, 2869, 2917, 2962, 3010, 3054, 3100, 3148, 3194, 3240, 3288, 3335, 3380, 3429, 3473, 3520, 3566, 3612, 3660]
    hit1 = 10
    TP成长 = 0.1
    TP上限 = 5

    chain = 6
    是否有护石 = 1

    def 装备护石(self, char):
        self.power1 = 1.74
        self.CDR *= 0.90


class 技能19(主动技能):
    名称 = "天陨断空斩"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [80, 3500]
    无色消耗 = 2
    data0 = [0, 2529, 2785, 3043, 3300, 3558, 3813, 4071, 4328, 4584, 4841, 5097, 5356, 5614, 5870, 6126, 6383, 6640, 6896, 7156, 7410, 7668, 7926, 8181, 8438, 8696, 8953, 9209, 9468, 9724, 9979, 10238, 10495, 10750, 11008, 11265, 11521, 11781, 12036, 12292, 12550, 12807, 13064, 13320, 13577, 13835, 14092, 14348, 14605, 14863, 15119, 15377, 15632, 15890, 16147, 16405, 16661, 16917, 17176, 17431, 17689, 17947, 18202, 18460, 18717, 18972, 19229, 19487, 19744, 20001, 20259]
    hit0 = 1
    data1 = [0, 1944, 2142, 2340, 2539, 2735, 2933, 3131, 3329, 3527, 3724, 3920, 4119, 4318, 4515, 4711, 4910, 5108, 5306, 5503, 5698, 5898, 6094, 6293, 6489, 6689, 6886, 7084, 7281, 7479, 7677, 7873, 8071, 8269, 8467, 8665, 8861, 9061, 9258, 9456, 9652, 9852, 10047, 10246, 10443, 10641, 10839, 11037, 11234, 11431, 11629, 11828, 12025, 12224, 12419, 12617, 12815, 13013, 13210, 13407, 13606, 13804, 14002, 14198, 14396, 14594, 14792, 14988, 15186, 15385, 15583]
    hit1 = 1
    data2 = [0, 2920, 3214, 3512, 3809, 4107, 4401, 4698, 4995, 5290, 5587, 5884, 6179, 6478, 6773, 7069, 7368, 7662, 7958, 8257, 8551, 8848, 9146, 9440, 9738, 10035, 10330, 10627, 10924, 11220, 11517, 11813, 12109, 12406, 12703, 12999, 13295, 13593, 13888, 14183, 14481, 14778, 15074, 15372, 15667, 15962, 16260, 16557, 16853, 17151, 17446, 17741, 18039, 18335, 18631, 18930, 19225, 19520, 19818, 20114, 20412, 20708, 21002, 21300, 21596, 21892, 22190, 22487, 22782, 23078, 23375]
    hit2 = 1
    data3 = [0, 12074, 13300, 14524, 15751, 16977, 18202, 19426, 20654, 21879, 23103, 24329, 25554, 26780, 28006, 29230, 30455, 31682, 32907, 34132, 35357, 36583, 37809, 39034, 40258, 41486, 42710, 43936, 45162, 46387, 47612, 48838, 50063, 51289, 52514, 53739, 54963, 56191, 57415, 58640, 59866, 61092, 62317, 63543, 64768, 65991, 67220, 68445, 69669, 70894, 72119, 73345, 74570, 75795, 77021, 78247, 79472, 80696, 81923, 83147, 84372, 85599, 86824, 88049, 89274, 90500, 91724, 92951, 94176, 95400, 96629]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 5

    chain = 6
    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 0
        self.power1 = 2.30
        self.power2 = 1.79
        self.power3 = 1.27


class 技能20(被动技能):
    名称 = '自然恩泽'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']
    关联技能1 = ['天马流星落', '暮光之灵黄昏独角兽', '生命之律·神木擎天']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00+0.02 * self.等级, 5)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00+0.02 * self.等级, 5)

    def 等级加成(self, x, char: Character = {}):
        if self.等级 != 0:
            if self.等级 + x > self.等级上限:
                self.等级 = self.等级上限
                if self.基础等级 != self.等级上限 and self.关联技能 != ['无']:
                    self.等级溢出 = 1
            else:
                self.等级 += x
                char.所有属性抗性加成(x)


class 技能21(主动技能):
    名称 = "天马流星落"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [400, 8400]
    无色消耗 = 5
    data0 = [0, 5182, 6383, 7586, 8788, 9992, 11193, 12395, 13596, 14799, 16003, 17205, 18407, 19608, 20812, 22012, 23215, 24418, 25620, 26822, 28024, 29226, 30428, 31632, 32833, 34037, 35237, 36440, 37640, 38844, 40046, 41250, 42451, 43653, 44854, 46057, 47262, 48462, 49665, 50866, 52069, 53270, 54473, 55676, 56878, 58080, 59282, 60484, 61686, 62890, 64091]
    hit0 = 1
    data1 = [0, 3055, 3766, 4476, 5183, 5894, 6602, 7313, 8021, 8731, 9440, 10151, 10858, 11569, 12277, 12987, 13695, 14405, 15115, 15824, 16533, 17243, 17952, 18662, 19369, 20080, 20789, 21500, 22207, 22917, 23626, 24337, 25044, 25755, 26463, 27173, 27882, 28591, 29301, 30010, 30719, 31429, 32139, 32848, 33556, 34267, 34975, 35686, 36393, 37103, 37813]
    hit1 = 4
    data2 = [0, 51705, 63695, 75685, 87675, 99665, 111657, 123646, 135636, 147626, 159617, 171608, 183596, 195587, 207577, 219568, 231559, 243548, 255538, 267529, 279519, 291509, 303499, 315490, 327480, 339470, 351460, 363451, 375441, 387431, 399419, 411412, 423402, 435389, 447382, 459370, 471363, 483350, 495342, 507332, 519322, 531312, 543302, 555293, 567284, 579273, 591264, 603253, 615245, 627234, 639224]
    hit2 = 1

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能22(主动技能):
    名称 = "生命审判"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [450, 1560]
    无色消耗 = 1
    data0 = [0, 18680, 20578, 22473, 24367, 26262, 28159, 30053, 31949, 33843, 35741, 37637, 39532, 41425, 43322, 45218, 47114, 49007, 50904, 52802, 54696, 56592, 58487, 60383, 62278, 64174, 66067, 67964, 69861, 71757, 73650, 75547, 77442, 79338, 81232, 83128, 85027, 86921, 88816, 90711, 92606, 94502, 96399, 98292, 100188, 102084, 103982, 105875, 107772, 109667, 111563]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    chain = 6
    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.17


class 技能23(主动技能):
    名称 = "壁垒突袭"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [935, 2360]
    无色消耗 = 3
    data0 = [0, 10464, 11525, 12586, 13648, 14712, 15773, 16835, 17896, 18959, 20019, 21081, 22142, 23204, 24268, 25329, 26391, 27450, 28513, 29574, 30636, 31697, 32760, 33822, 34884, 35945, 37007, 38069, 39130, 40192, 41253, 42316, 43379, 44438, 45501, 46563, 47625, 48686, 49748, 50811, 51872, 52933, 53995, 55058, 56119, 57181, 58242, 59305, 60367, 61427, 62489]
    hit0 = 1
    data1 = [0, 19432, 21405, 23377, 25349, 27321, 29293, 31265, 33237, 35210, 37180, 39152, 41125, 43098, 45068, 47040, 49013, 50984, 52956, 54929, 56901, 58871, 60844, 62815, 64787, 66757, 68731, 70702, 72674, 74646, 76617, 78589, 80561, 82535, 84506, 86478, 88450, 90423, 92394, 94367, 96336, 98308, 100279, 102253, 104224, 106196, 108169, 110140, 112113, 114085, 116056]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    chain = 6
    是否有护石 = 1

    def 装备护石(self, char):
        self.power1 = 1.47


class 技能24(主动技能):
    名称 = "剑盾强袭"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 46490, 51207, 55922, 60640, 65356, 70072, 74790, 79505, 84223, 88939, 93656, 98372, 103090, 107807, 112522, 117240, 121957, 126674, 131390, 136105, 140822, 145539, 150257, 154971, 159687, 164406, 169122, 173840, 178555, 183273, 187990, 192705, 197421, 202137, 206856, 211572, 216290, 221005, 225722, 230440, 235155, 239872, 244588, 249305, 254022, 258738, 263456, 268172, 272888, 277605]
    hit0 = 1

    chain = 6
    是否有护石 = 1

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.chain = 6
        if 形态 == "5c":
            self.chain = 5
        if 形态 == "4c":
            self.chain = 4
        if 形态 == "3c":
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率1()

    def 装备护石(self, char):
        self.倍率 *= 1.35


class 技能25(被动技能):
    名称 = '信仰鼓舞'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能26(主动技能):
    名称 = "自然之怒"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 9320, 10266, 11211, 12159, 13105, 14052, 14998, 15942, 16889, 17836, 18781, 19728, 20673, 21619, 22565, 23510, 24455, 25402, 26348, 27294, 28242, 29185, 30133, 31080, 32025, 32972, 33917, 34863, 35809, 36754, 37699, 38646, 39592, 40538, 41485, 42429, 43376, 44324, 45268, 46216, 47161, 48107, 49054, 49996, 50943, 51890, 52836, 53783, 54729, 55673]
    hit0 = 1
    data1 = [0, 3480, 3833, 4186, 4538, 4894, 5246, 5601, 5954, 6305, 6661, 7013, 7368, 7720, 8075, 8426, 8779, 9133, 9486, 9841, 10195, 10548, 10902, 11253, 11608, 11960, 12314, 12669, 13022, 13376, 13727, 14081, 14434, 14789, 15141, 15497, 15846, 16202, 16555, 16909, 17261, 17616, 17967, 18321, 18674, 19029, 19383, 19735, 20091, 20441, 20796]
    hit1 = 6
    data2 = [0, 23255, 25615, 27974, 30334, 32692, 35053, 37412, 39771, 42130, 44491, 46850, 49208, 51568, 53928, 56288, 58646, 61005, 63365, 65724, 68083, 70443, 72801, 75165, 77524, 79883, 82244, 84603, 86961, 89322, 91680, 94040, 96399, 98759, 101118, 103477, 105837, 108196, 110555, 112916, 115275, 117633, 119992, 122353, 124712, 127073, 129432, 131792, 134150, 136511, 138869]
    hit2 = 1

    chain = 6
    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 2.98
        self.CDR *= 0.9


class 技能27(主动技能):
    名称 = "暮光之灵黄昏独角兽"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 10086, 12426, 14767, 17106, 19445, 21785, 24123, 26463, 28803, 31142, 33481, 35822, 38162, 40502, 42841, 45178, 47519, 49859, 52199, 54538, 56879, 59218, 61557, 63896, 66237, 68576, 70916, 73253, 75594, 77934, 80274, 82613, 84953, 87294, 89630, 91970, 94310, 96651, 98991, 101330, 103668, 106009, 108349, 110687, 113027, 115366, 117707, 120045, 122385, 124725]
    hit0 = 3
    data1 = [0, 121070, 149143, 177219, 205293, 233367, 261443, 289518, 317594, 345666, 373743, 401818, 429890, 457966, 486042, 514116, 542190, 570265, 598340, 626415, 654489, 682564, 710638, 738714, 766788, 794863, 822937, 851012, 879086, 907161, 935236, 963311, 991384, 1019460, 1047535, 1075610, 1103683, 1131758, 1159834, 1187907, 1215982, 1244057, 1272131, 1300206, 1328281, 1356356, 1384430, 1412504, 1440580, 1468654, 1496729]
    hit1 = 1
    data2 = [0, 3361, 4140, 4920, 5700, 6480, 7259, 8039, 8820, 9599, 10380, 11159, 11940, 12720, 13499, 14279, 15058, 15839, 16618, 17396, 18176, 18957, 19737, 20516, 21297, 22077, 22856, 23636, 24417, 25196, 25976, 26756, 27537, 28316, 29096, 29876, 30656, 31436, 32216, 32997, 33776, 34554, 35335, 36114, 36893, 37674, 38453, 39233, 40013, 40794, 41573]
    hit2 = 5

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能28(主动技能):
    名称 = "荆棘之城"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [800, 6667]
    无色消耗 = 7
    data0 = [0, 8782, 9676, 10567, 11456, 12350, 13240, 14131, 15023, 15914, 16805, 17697, 18588, 19479, 20371, 21261, 22153, 23043, 23935, 24827, 25717, 26609, 27501, 28391, 29283, 30174, 31065, 31957, 32848, 33739, 34631, 35521, 36412, 37305, 38195, 39086, 39980, 40869, 41760, 42654, 43544, 44434, 45324, 46218, 47109, 47998, 48892, 49783, 50673, 51566, 52457]
    hit0 = 1
    data1 = [0, 79067, 87088, 95110, 103132, 111153, 119175, 127197, 135216, 143239, 151261, 159282, 167304, 175325, 183346, 191368, 199390, 207410, 215433, 223455, 231475, 239496, 247519, 255540, 263562, 271583, 279604, 287626, 295648, 303668, 311690, 319713, 327734, 335755, 343775, 351798, 359820, 367842, 375861, 383884, 391905, 399927, 407948, 415969, 423992, 432014, 440033, 448055, 456078, 464099, 472120]
    hit1 = 1

    chain = 6


class 技能29(被动技能):
    名称 = '生命的恩宠'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能30(主动技能):
    名称 = "生命之律·神木擎天"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 45293, 55795, 66299, 76801, 87305, 97808, 108312, 118815, 129316, 139820, 150324, 160827, 171329, 181834, 192336, 202840, 213343, 223844, 234348, 244851, 255354, 265858, 276361, 286863, 297367, 307870, 318374, 328876, 339380, 349884, 360387, 370889, 381392, 391895, 402398, 412902, 423403, 433908, 444411, 454915, 465417, 475921, 486424, 496927, 507430, 517932, 528436, 538939, 549443, 559945]
    hit0 = 1
    data1 = [0, 362356, 446380, 530406, 614430, 698455, 782480, 866505, 950530, 1034556, 1118580, 1202605, 1286630, 1370655, 1454680, 1538706, 1622730, 1706755, 1790780, 1874805, 1958830, 2042856, 2126880, 2210905, 2294930, 2378955, 2462980, 2547004, 2631030, 2715054, 2799080, 2883104, 2967130, 3051153, 3135179, 3219204, 3303229, 3387254, 3471278, 3555303, 3639329, 3723354, 3807379, 3891404, 3975428, 4059453, 4143479, 4227504, 4311529, 4395554, 4479578]
    hit1 = 1
    data2 = [0, 7547, 9297, 11047, 12798, 14549, 16299, 18050, 19799, 21550, 23302, 25053, 26804, 28553, 30303, 32054, 33805, 35555, 37306, 39056, 40807, 42557, 44307, 46059, 47808, 49560, 51310, 53060, 54811, 56561, 58312, 60062, 61813, 63563, 65314, 67063, 68814, 70565, 72317, 74066, 75817, 77568, 79318, 81069, 82818, 84570, 86320, 88071, 89821, 91572, 93322]
    hit2 = 6

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能31(主动技能):
    名称 = "骑乘召唤"
    所在等级 = 15
    等级上限 = 11
    等级精通 = 1
    学习间隔 = 2
    # 初始CD
    # CD = 120
    # 平X
    CD = 1
    MP = [9, 250]
    无色消耗 = 0
    # 普通攻击(3x) 前两x和第三x数据不一致，每x三段
    data0 = [0, 93, 102, 112, 121, 131, 141, 150, 159, 168, 178, 187]
    hit0 = 3*2
    data1 = [0, 124, 136, 150, 162, 175, 187, 200, 212, 225, 237, 250]
    hit1 = 3
    # 前冲
    data2 = [0, 116, 127, 140, 151, 163, 175, 187, 199, 210, 222, 234]
    hit2 = 4
    # 刺击
    data3 = [0, 322, 355, 387, 420, 453, 485, 518, 551, 584, 616, 649]
    hit3 = 4

    形态 = ["3x", "前冲", "刺击"]

    TP成长 = 0.1
    TP上限 = 5

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "3x":
            self.hit0 = 3*2
            self.hit1 = 3
            self.hit2 = self.hit3 = 0
            self.CD = 1
        if 形态 == "前冲":
            self.hit2 = 4
            self.hit0 = self.hit1 = self.hit3 = 0
            self.CD = 1
        if 形态 == "刺击":
            self.hit3 = 4
            self.hit0 = self.hit1 = self.hit2 = 0
            self.CD = 2

class 技能32(主动技能):
    名称 = "骑乘践踏"
    所在等级 = 15
    等级上限 = 1
    等级 = 1
    等级精通 = 1
    CD = 3
    MP = [9, 250]
    无色消耗 = 0

    data0 = [0, 1594, 1756, 1917, 2079, 2241, 2402, 2564, 2726, 2887, 3049, 3211]
    hit0 = 1

    形态 = []

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        self.等级 = char.get_skill_by_name('骑乘召唤').等级
        return super().等效百分比(**argv)

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0

class 技能33(主动技能):
    名称 = "骑乘前踏"
    所在等级 = 15
    等级上限 = 1
    等级 = 1
    等级精通 = 1
    CD = 8
    MP = [9, 250]
    无色消耗 = 0

    data0 = [0, 330, 364, 397, 431, 464, 497, 531, 564, 598, 632, 665]
    hit0 = 1
    data1 = [0, 2972, 3274, 3576, 3878, 4180, 4480, 4782, 5084, 5386, 5688, 5989]
    hit1 = 1

    形态 = []

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        self.等级 = char.get_skill_by_name('骑乘召唤').等级
        return super().等效百分比(**argv)

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0

class 技能34(主动技能):
    名称 = "骑乘后撩踢"
    所在等级 = 15
    等级上限 = 1
    等级 = 1
    等级精通 = 1
    CD = 7
    MP = [9, 250]
    无色消耗 = 0

    data0 = [0, 2942, 3240, 3538, 3837, 4135, 4435, 4733, 5031, 5330, 5628, 5927]
    hit0 = 1

    形态 = []

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        self.等级 = char.get_skill_by_name('骑乘召唤').等级
        return super().等效百分比(**argv)

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0

class 技能35(主动技能):
    名称 = "骑乘奔袭"
    所在等级 = 15
    等级上限 = 1
    等级 = 1
    等级精通 = 1
    CD = 7
    MP = [9, 250]
    无色消耗 = 0

    data0 = [0, 797, 878, 959, 1040, 1121, 1202, 1283, 1364, 1445, 1525, 1606]
    hit0 = 6

    形态 = []

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        self.等级 = char.get_skill_by_name('骑乘召唤').等级
        return super().等效百分比(**argv)

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0

class 技能36(主动技能):
    名称 = "骑乘旋风刺击"
    所在等级 = 15
    等级上限 = 1
    等级 = 1
    等级精通 = 1
    CD = 15
    MP = [9, 250]
    无色消耗 = 0

    data0 = [0, 546, 602, 657, 713, 768, 823, 879, 934, 990, 1046, 1101]
    hit0 = 10

    形态 = []

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        self.等级 = char.get_skill_by_name('骑乘召唤').等级
        return super().等效百分比(**argv)

    def 武器CD系数(self, 武器类型, 输出类型):
        return 1.0

class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'elven_knight'
        self.名称 = '皓曦·精灵骑士'
        self.角色 = '守护者'
        self.角色类型 = '输出'
        self.职业 = '精灵骑士'

        self.武器选项 = ['太刀', '钝器', '巨剑', '短剑']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '巨剑'
        self.防具类型 = '板甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.03

        super().__init__(equVersion)

    # 抗性有成长的较为特殊 需要按照以下进行添加
    def 职业特殊设置(self):
        自然恩泽 = self.get_skill_by_name("自然恩泽")
        self.所有属性抗性加成(自然恩泽.等级+9)
        骑乘召唤 = self.get_skill_by_name("骑乘召唤")
        for i in ['骑乘践踏','骑乘前踏','骑乘后撩踢','骑乘奔袭','骑乘旋风刺击']:
            skill = self.get_skill_by_name(i)
            skill.TP上限 = 骑乘召唤.TP上限
            skill.TP成长 = 骑乘召唤.TP成长
            skill.TP等级 = 骑乘召唤.TP等级
            skill.等级 = 骑乘召唤.等级
            skill.等级上限 = 骑乘召唤.等级上限

    def set_skill_info(self, info, rune_except=['剑盾猛攻'], clothes_pants=[] ,rune_start_lv=20) -> None:
        super().set_skill_info(info, rune_except, clothes_pants, rune_start_lv)
        info['rune'].append('骑乘召唤')
        info['rune'].append('愤怒冲撞')
        for i in ['骑乘践踏','骑乘前踏','骑乘后撩踢','骑乘奔袭','骑乘旋风刺击']:
            info['platinum'].remove(i)

    def 符文计算(self):
        for item in self.符文:
            if not item is None and item != '':
                skill_name: str = item[0:-1]
                type = item[-1]
                skill = None
                if skill_name == '骑乘召唤':
                    for i in ['骑乘召唤','骑乘践踏','骑乘前踏','骑乘后撩踢','骑乘奔袭','骑乘旋风刺击']:
                        skill = self.get_skill_by_name(i)
                        if skill is not None:
                            # 紫
                            if type == "1":
                                skill.倍率 *= 1.04
                                # 红
                            if type == "2":
                                skill.倍率 *= 1.06
                                skill.CDR *= 1.04
                                # 绿
                            if type == "3":
                                skill.倍率 *= 0.96
                                skill.CDR *= 0.93
                                # 蓝
                            if type == "4":
                                skill.CDR *= 0.95
                        else:
                            print("skill not found {skill_name}".format(skill_name))
                else:
                    skill = self.get_skill_by_name(skill_name)
                    if skill is not None:
                            # 紫
                        if type == "1":
                            skill.倍率 *= 1.04
                            # 红
                        if type == "2":
                            skill.倍率 *= 1.06
                            skill.CDR *= 1.04
                            # 绿
                        if type == "3":
                            skill.倍率 *= 0.96
                            skill.CDR *= 0.93
                            # 蓝
                        if type == "4":
                            skill.CDR *= 0.95
                    else:
                        print("skill not found {skill_name}".format(skill_name))
            pass